﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TugasAkhir.Models;
using TugasAkhir.Objects;

namespace TugasAkhir
{
    public partial class Kuisioner : System.Web.UI.Page
    {
        MahasiswaObject mahasiswa;

        private TanggalObject tanggal;
        private string tahunSekarang;
        private string periodeSekarang;

        protected void Page_Load(object sender, EventArgs e)
        {
            CheckSession();
            TanggalModel.GetServerWaktu(out tanggal);
            this.Cek();

            if (!Page.IsPostBack) this.InitTabelTahun();
        }

        private void Cek()
        {
            this.periodeSekarang = (this.tanggal.Bulan >= 1 && this.tanggal.Bulan <= 6) ? "GENAP" : "GASAL";
            this.tahunSekarang = (this.periodeSekarang == "GENAP") ? (String.Format("{0}-{1}", this.tanggal.Tahun - 1, this.tanggal.Tahun)) : (String.Format("{0}-{1}", this.tanggal.Tahun, this.tanggal.Tahun + 1));
        }

        private void InitTabelTahun()
        {
            var defaultItem = new ListItem()
            {
                Text = "-- pilih salah satu --",
                Value = ""
            };

            this.ddlTahun.Items.Add(defaultItem);

            var data = new DataSet();
            bool flag = AnalisisModel.GetTahun(out data);

            if (flag)
            {
                foreach (DataRow item in data.Tables[0].Rows)
                {
                    this.ddlTahun.Items.Add(new ListItem { Text = item[0].ToString(), Value = item[0].ToString() });
                }
            }

            if (this.ddlPeriode.Items.Count == 0)
                this.ddlPeriode.Items.Add(defaultItem);

            if (this.ddlMatakuliah.Items.Count == 0)
                this.ddlMatakuliah.Items.Add(defaultItem);
        }

        private void CheckSession()
        {
            if (Session["id_role"] != null && Session["id_role"].ToString() == "RL01")
            {
                MahasiswaModel.GetMahasiswaDetail(Session["username"].ToString(), out mahasiswa);
                this.litName.Text = mahasiswa.Nama;
            }
            else
            {
                Response.Redirect("/Login.aspx");
            }
        }

        protected void ddlTahun_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.ddlTahun.SelectedValue == "")
            {
                var defaultItem = new ListItem()
                {
                    Text = "-- pilih salah satu --",
                    Value = ""
                };

                this.ddlPeriode.Items.Clear();
                this.ddlPeriode.Items.Add(defaultItem);

            }
            else
            {
                this.InitDropDownPeriode();
            }
        }

        private void InitDropDownPeriode()
        {
            var defaultItem = new ListItem()
            {
                Text = "-- pilih salah satu --",
                Value = ""
            };

            this.ddlPeriode.Items.Clear();
            this.ddlPeriode.Items.Add(defaultItem);

            this.ddlMatakuliah.Items.Clear();
            this.ddlMatakuliah.Items.Add(defaultItem);

            var data = new DataSet();
            bool flag = AnalisisModel.GetPeriode(this.ddlTahun.SelectedValue, out data);

            if (flag)
            {
                foreach (DataRow item in data.Tables[0].Rows)
                {
                    this.ddlPeriode.Items.Add(new ListItem { Text = item[0].ToString(), Value = item[0].ToString() });
                }
            }
            else
            {
                this.ddlTahun.SelectedValue = "";
            }
        }

        protected void ddlPeriode_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.ddlPeriode.SelectedValue == "")
            {
                var defaultItem = new ListItem()
                {
                    Text = "-- pilih salah satu --",
                    Value = ""
                };

                this.ddlMatakuliah.Items.Clear();
                this.ddlMatakuliah.Items.Add(defaultItem);
            }
            else
            {
                this.InitDropDownMatakuliah();
            }
        }

        private void InitDropDownMatakuliah()
        {
            var defaultItem = new ListItem()
            {
                Text = "-- pilih salah satu --",
                Value = ""
            };

            this.ddlMatakuliah.Items.Clear();
            this.ddlMatakuliah.Items.Add(defaultItem);

            var data = new DataSet();
            bool flag = AnalisisModel.GetMatakuliah(this.ddlTahun.SelectedValue, this.ddlPeriode.SelectedValue, mahasiswa.IdMahasiswa, out data);

            if (flag)
            {
                foreach (DataRow item in data.Tables[0].Rows)
                {
                    this.ddlMatakuliah.Items.Add(new ListItem { Text = item[2].ToString(), Value = item[0].ToString() + "," + item[1].ToString() });
                }
            }
            else
            {
                this.ddlMatakuliah.SelectedValue = "";
            }
        }

        protected void ddlMatakuliah_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }

        protected void btPilih_ServerClick(object sender, EventArgs e)
        {
            if (!((this.tanggal.Bulan >= 5 && this.tanggal.Bulan <= 6) || (this.tanggal.Bulan >= 11 && this.tanggal.Bulan <= 12)))
            {
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "ShowScript", "$('#gagalModal').modal('show');", true);
                return;
            }

            if (this.ddlMatakuliah.SelectedValue != "")
            {
                string[] data = this.ddlMatakuliah.SelectedValue.Split(new char[] { ',' });
                string kelas = "kelas=" + data[1];
                string periode = "periode=" + this.ddlPeriode.SelectedValue;
                string tahun = "tahun=" + this.ddlTahun.SelectedValue;
                string matakuliah = "matakuliah=" + data[0];
                string mahasiswa = "mahasiswa=" + this.mahasiswa.IdMahasiswa;

                string current = "/KuisionerIsi.aspx?" + kelas + "&" + periode + "&" + tahun + "&" + matakuliah + "&" + mahasiswa;
                Response.Redirect(current, true);

            }
        }

        protected void lnkLogout_Click(object sender, EventArgs e)
        {
            Session["id_role"] = "";
            Session["username"] = "";
            CheckSession();
        }
    }
}